home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Software Vault: The Diamond Collection
/
The Diamond Collection (Software Vault)(Digital Impact).ISO
/
cdr38
/
bcheck13.zip
/
BCHECK13.DOC
< prev
next >
Wrap
Text File
|
1995-03-05
|
45KB
|
883 lines
BCHECKERS |
|
version 1.3 |
|
|
A multi-node checkers door for most BBS systems |
Copyright 1995 by DIRT CHEAP SOFTWARE |
Written in C by Bruce Bowman |
|
Released January ?, 1995 |
|
INTRODUCTION
------------
--------------------------------------------------------------------------
| >Disclaimer< Throughout this document, I have used the masculine gender |
| when referring to a "generic" person. This is only to avoid continuous |
| use of such things as (s)he, which I find annoying. I have total respect |
| for the females of the species; I even married one. So lighten up. :^) |
| -------------------------------------------------------------------- |
| >Disclaimer #2< The author of this program, Bruce Bowman, promises only |
| that this program will take up space on your hard drive (and perhaps not |
| even that). I've put a lot of my time and sweat equity into this, and in |
| return I ask only that you try it and remit a token sum if you continue |
| to do so. I make no claims for its suitability for a particular purpose, |
| and guarantee nothing whatsoever regarding potential damage to your own |
| computer or hard-acquired files. I can only suggest that you do what I |
| do, and back up your hard drive frequently. If the unthinkable happens |
| and some terrible fate should befall you as a direct or indirect result |
| of using BCheckers, you will have my utmost sympathy -- but that's about |
| all. So there. :^) |
| -------------------- |
| This software is copyrighted: You're subject to the associated penalties |
| of law if you attempt to reverse-engineer it, hack the key routines, or |
| otherwise steal the benefits of all my aforementioned sweat equity. |
--------------------------------------------------------------------------
As a sysop of a FidoNet BBS, I was disappointed in the lack of a good,
non-interactive checkers door. Sure, there were some that allowed inter-
node play and the like, but these were expensive and few offered any
decent ANSI graphics and the simple ability to have callers make moves
on alternate logons. I also wanted to try my hand at programming in C,
having learned a number of other programming languages. BCheckers is the
result of this effort; and at only $10 is a bargain in shareware.
BCheckers offers the following sysop features (and more I've probably
overlooked in these docs):
- As you would expect, BCheckers monitors carrier detect functions, to
automatically recover when a user drops carrier.
- Includes a fully-adjustable inactivity timeout monitor. A warning is
sent 5 seconds before the caller is ejected.
- Share-aware file i/o for use in multi-node BBS systems. You must have
DOS's SHARE.EXE loaded for multi-node use.
- Supports most popular BBS door information files, such as DORINFO1.DEF,
EXITINFO.BBS, CHAIN.TXT, DOOR.SYS, etc.
- Displays and updates a QuickBBS-style status line, with information
available to the sysop such as user name, location, baud rate, time left,
function keys, ANSI and AVATAR settings, and so on.
- Keeps track of a user "wants-chat" indicator, just like the one in
RemoteAccess, QuickBBS and other BBS systems. Allows for sysop page from
the door, and integrated chat mode.
- Provides the sysop with all the standard function keys for adjusting user
time, hanging up on or even locking out the user -- and sysop shell to DOS.
- Full support for locked baud-rates of up to 115200 baud, using the FOSSIL
driver for maximum compatibility with any system. If a FOSSIL is not
available, BCheckers will use its own communications routines. Auto-detect
of local operation.
- BCheckers is also DesqView and Windows aware. It will automatically check
for the presence of a multitasker, and if available, will perform all of
its screen output through the appropriate function calls.
CONVERTING FROM VERSION 1.0
---------------------------
* * IMPORTANT!! * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* If you've been running version 1.0 of this program, you MUST execute *
* 10TO11.EXE in the BCHECK directory prior to running version 1.1 or *
* any later version of BCHECKERS!! *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
The data file BCHECK.BBS in versions after 1.0 now hold the players' comments
to each other and a draw-request indicator. Each record is 78 bytes longer
than in version 1.0. If you run later versions without running 10TO11.EXE,
you will corrupt your BCHECK.BBS file and lose all games in progress. Your
callers probably won't appreciate this!
To upgrade, overwrite your old copy of BCHECK.EXE with the new version. Copy
the 10TO11.EXE file to the directory containing your BCHECK.BBS file. Close
any tasks that might access the BCHECK program, then type the following at
the DOS prompt:
10TO11
This will update the BCHECK.BBS file to the new format. Once completed, you
may delete the 10TO11.EXE program. If you don't mind losing all your games,
just delete the BCHECK.BBS file from the DOS prompt.
IF YOU'RE NOT RUNNING VERSION 1.0, YOU DO *NOT* NEED TO USE 10TO11.EXE!!
BCHECKERS QUICKSTART
------------------
To get the door up and running when not upgrading, do the following...
1) Copy the BCHECK.EXE file to the directory from which you plan to run
the door.
2) Create a door batch file, similar to the following:
CD \BBS\DOORS (location of BCHECK executable)
BCHECK <parameters> (see below)
CD \BBS
EXIT
3) Create a menu entry to call the door. This varies according to your
BBS software. I recommend a "spawn" type of door call (e.g.: type 7 on
QuickBBS or Remote Access).
That's really about all there is to it! Now, you need to know about the
command line parameters, so here goes...
COMMAND LINE PARAMETERS
-----------------------
** Soapbox mode ON **
One thing that has always irritated me is the number of config files and
the like that clutter my directories. I see no need to have an executable,
a maintenance program, a config file and program, and a data file for each
game (like many door programmers prefer). Although harder to do, I've
designed BCheckers so it doesn't need all those files -- all it uses, besides
the executable, is two data files (the Hall of Fame and a user activity
log). Configuration is done exclusively via command line parameters.
** Soapbox mode OFF **
Call the program with the following syntax. Only the <path> parameter is
required. Parameters indicated with an asterisk (*) can only be configured
in the registered version.
BCHECK <path> <DtoL> <DtoK*> <MaxGam*> <InAct*> <MaxTim*> <PaOff*> <PaOn*>
[ <Baud> <IRQ> <Add> ]
Where:
<path> REQUIRED: Path to the door drop file(s). This will vary depending
on the node using the door. I usually set things up so the node
number is passed on the batch file command line, so the door can
be called with something like: BCHECK \BBS\NODE%1. That way, you
can use the same batch for any number of nodes.
You can also force BCheckers to preferentially read a particular
drop file by placing its name along with the full path. This is
handy if BCheckers is reading one drop file first -- one that
doesn't have all the data it needs to run properly.
<DtoL> "Days to Lose" - Number of days before an inactive game is
aborted. This is the way we keep games from piling up without
someone actively playing. If a player does not make a move in
a game after this number of days, the last player to move is
declared the winner (if there ARE two players -- otherwise the
game is simply deleted).
Default value is 21 days (3 weeks). If you choose to use this
default but want to specify a value for one of the subsequent
parameters, insert XX (or any other string of *non-numeric*
characters) as a placeholder. All this really does is make
sure the help screens give the correct value to your callers
-- check out the "maintenance" section later in this document.
<DtoK*> "Days to Keep" - Number of days a completed game is held before
being purged from the game file. This allows a few days for the
players and other callers to see the outcome. Treat this just as
you would the DtoL parameter. Default is 10 days.
<MaxGam*> Maximum number of games an individual can play at once. Default
value is 5, acceptable range is 1-200. A value of zero is
ignored, giving the default. Again, insert a placeholder if you
want to specify a value for any subsequent parameters.
<InAct*> Time, in seconds, before a user is returned to the BBS for
inactivity. If your caller goes to sleep at the terminal, this
will bump him off and back to the board. Keep this number high
enough that the caller has enough time to think about what
move he wants to make. Default is 200 seconds.
<MaxTim*> Maximum time, in minutes, you will allow a caller to spend in
the door. Default is the total amount of connect time available
to the caller (ie: no restriction). A warning is sent shortly
before the caller runs out of time.
<PaOff*> Time, in minutes after midnight, for paging hours to end. Valid
numbers are 0-1440. By default, paging is always on; so if you
enter an invalid number, that's what you'll get.
<PaOn*> Time, in minutes since midnight, for paging hours to resume. If
you *never* want a caller to page you, enter a value of exactly
midnight (zero) for PageOn, or simply don't provide a value for
PageOn at all.
USE THE FOLLOWING PARAMETERS ONLY IF YOU DO NOT USE A FOSSIL FOR MODEM I/O!
Using any of these parameters disables use of the FOSSIL. In most cases, it
is better to set one or more of these values on your FOSSIL command line and
just use the FOSSIL for i/o -- but if your BBS software does not require a
FOSSIL, or for some reason you prefer the FOSSIL not be used, you can still
run the door using these parameters and BCheckers's internal comm routines.
<Baud> The computer-to-modem data transfer rate (DTE speed). THIS IS NOT
THE MODEM-TO-MODEM CONNECT SPEED. This value must evenly divide
115200 (115200, 57600, 38400, 28800, 23040, 19200, 14400, etc). Do
not use a comma (ie: do not enter the value as 57,600 -- it won't
work).
If all you want to do is force BCheckers to use its comm routines,
you can again put XX or any other non-numeric placeholder string in
this position. If you use hardware data compression on your modem
(V.42bis or others), I suggest using a value of 4x your highest
connect speed to avoid losing characters. For example, for a 9600
baud modem with V.42bis, I recommend using 38400 here.
<IRQ> Sets the IRQ line to be used by your modem. Normally, BCheckers
will determine the standard IRQ line used by COM1-COM4. If you use
a non-standard IRQ line for your modem (usually to avoid a
conflict with another device) place its value here.
<Add> Base address (in hex). BCheckers can normally determine the base
address of the port for you. However, if you prefer to change the
base address, place its value here. MAKE SURE IT IS CORRECT!! If
it isn't, BCheckers will still dutifully follow your instructions
and perhaps overwrite important areas of memory. If you don't
understand any of this, DO NOT put ANYTHING here.
Standard base addresses and IRQs follow. These are the values that
will be used based on the COM port passed in the BBS drop files,
unless remapped by your FOSSIL or on the BCheckers command line:
COM1 03F8h and IRQ4
COM2 02F8h and IRQ3
COM3 03E8h and IRQ4
COM4 02E8h and IRQ3
Examples:
BCHECK \BBS\NODE1
Bring up the door with the drop file located in the \BBS\NODE1
directory. All other parameters take their default values.
BCHECK \BBS\NODE2 30 XX XX 300 30
Run the door from node 2. Thirty days before declaring a winner
due to inactivity. Use the default value for days to keep and
games per player (10 days and 5 games, respectively). Increase
the inactivity timeout to 300 seconds, and allow no more than 30
minutes in the door.
BCHECK \BBS\NODE1 15
Same as the first example, but keep games for only 15 days before
declaring a winner due to inactivity.
BCHECK XX 20
ERROR. Path to the drop file is REQUIRED. This will assume the
drop file is located in the XX directory, which is probably not
what you wanted.
BCHECK \BBS\NODE1 XX XX XX XX XX 1260 420
Run BCheckers with the defaults, except disable sysop paging at
9 p.m. and resume at 7 a.m.
BCHECK \BBS\NODE3 XX XX 8 XX XX XX XX XX
Run BCheckers, forcing use of internal comm routines (assuming a
FOSSIL is not available). Callers will be allowed to play no more
than 8 games each.
BCHECK\BBS\NODE%1 XX XX XX XX XX XX 115200 7 02E8
Run BCheckers using the internal comm routines and non-standard
modem settings indicated. The node passed on the batch file
command line is using the door.
SYSOP FUNCTIONS
---------------
Status Line - By default, the status line is OFF. To turn it on, press F10.
The status line lists the name of the user currently on-line, his location,
and baud rate (0 if the door is operating in local mode). You may also find
out how much time the user has left, check for indicators as to whether the
user has ANSI and/or AVATAR modes on, etc. If the user wishes to Chat with
the sysop (ie: they have paged the sysop, but haven't received a response),
a [Want-Chat] indicator will flash on the status line.
[F1]..[F10] - The Function keys [F1] thru [F10] allows the sysop access to
various types of information on the status line, or to turn
the status line off. These keys are as follows:
[F1] - Display basic door and user information
[F2] - Display phone numbers and important dates
[F3] - Display security flags and up/download info
[F4] - Display system information and current time
[F5] - Display message info and user's settings
[F6] - Display chat reason and sysop's comment
[F9] - Display help information for sysop
[F10] - Toggle the status line on/off
In normal usage, the screen will often scroll one line when it attempts to
print on a line that is "under" the status line. I REPEAT -- THIS IS NORMAL.
Everything looks fine from remote. Keep the status line off when playing in
local mode.
The following other function keys are also available to the sysop:
[UP]/[DOWN] - Use the arrow keys to increase or decrease the amount of
time the caller has left in the door.
[Alt]-[C] - Allows the sysop to break into chat with the caller at any
time. [Alt]-[C] again, or [ESC] will end chat mode. (Notice
that the Want-Chat indicator will also be turned off, if it
was flashing). If your door is running under Apex, Remote
Access or QuickBBS, paging from within the door will also
cause the Want-Chat indicator to stay lit when the user
returns to the BBS.
[Alt]-[J] - Allows the sysop to shell to DOS, if enough memory is
available. Simply type EXIT to return to the door.
[Alt]-[H] - Hang up on the user. Drops carrier and returns to the BBS.
[Alt]-[L] - This key locks the user out of the BBS. It first hangs up
on the user, and then sets their security level to 0, to
prevent them from ever logging on again. This feature may
require use of the EXITINFO.BBS file, depending on what
system the door is running under.
[Alt]-[K] - The "User Keyboard-Off" key allows the sysop to temporarily
prevent the user from typing anything on their keyboard.
This has no effect on the local keyboard, but causes the
door to ignore any keystrokes from remote.
[Alt]-[N] - The "Sysop Next" key, this function reserves the system for
use by the sysop after the user logs off, if the door is
running under an Apex or RA 1.00 or later system.
[Alt]-[D] - "Drop to BBS" key. This function allows the sysop to exit
the door and return the user to the BBS, without hanging up.
USING THE DOOR
--------------
The door is menu-driven, and most of the functions are self-explanatory. A
brief overview will be given here.
The door is based on the "touch-move" premise. Once a legal piece is chosen,
the caller is *required* to move that piece. If only one move is available
for the chosen piece, that move will be made immediately -- otherwise, the
door will prompt for a destination square by highlighting the legal moves
with flashing pieces. Also, the door will not allow the caller to "take back"
a move. Thus, it is very important that the caller use due discretion in
evaluating the board position *before* they start to make a move.
This is not because I am lazy -- the door has been *purposely* programmed
this way. Checkers is supposed to be something of an intellectual game, and
it is the opinion of this programmer that allowing "take-backs" defeats the
purpose of having game doors that are in principle a cerebral challenge
between the players.
The door conforms to Hoyle's rule for jumps (rather than "Huff or Blow"). If
the caller has a capture, he *must* make a capture. If a new game is started,
the player is assigned the Black pieces for his first move (in keeping with
Checkers conventions). The opponent is "No One" until someone joins the game.
The opening screen allows the caller to perform most game operations, as
follows:
1) Make a Move -- The caller may make a move in a game in which he is
already a player. These games are presented in a list, from which the
player chooses the game number. The game selected is then presented to
him.
If it isn't the caller's move, or the game has been completed, a message
to that effect will be displayed.
If it is the caller's move, the door will first check if his opponent
has offered a draw. If so, he is allowed to accept or reject the offer.
If accepted, the game is drawn immediately...otherwise, the offer is
discarded and the game proceeds normally. The door then presents the
caller with his opponent's message and the following choices:
<E>xit -- Abort move selection and return to the game selection menu.
<M>ove -- Make a move. The caller will be prompted for a piece to move
and a destination square, if required. If the caller selects an
illegal move, the door displays an error message and highlights the
legal moves.
Once a move is made, the door checks for whether the opponent also has
a legal move -- if not, the game is won! Otherwise, the caller has the
opportunity to either leave a message to his opponent or offer a draw.
Up to 75 alphanumeric and punctuation characters may be entered for
the opponent to read prior to his next move. If an offer to draw is
made, a confirmation prompt is displayed to ensure that the key wasn't
hit by mistake. If confirmed, the opponent will be shown the offer and
the game will be immediately declared a draw if he accepts.
<R>edraw Screen -- Use this if something messes up in data transmission
and the screen needs to be cleaned up.
<F>orfeit Game -- Use if you want to "give up" and allow your opponent
to win. The caller is prompted for confirmation before the game is
declared lost. You must have an opponent to forfeit to!
2) View Games in Progress -- Displays any game that has not been deleted. A
list of current games is presented to the user so he may select one to
view. The board position is then displayed along with status information.
3) Start a New Game -- Same as #1 above, but starts a new game. The caller
is always given the Black pieces to start the game. Of course, the
<F>orfeit and <D>raw options are not available in this case, since the
caller has no opponent yet.
4) Join a Game -- Allows the caller to join a game that someone else
started. Having joined the game, the player receives the White pieces,
and is given the opportunity to make a move immediately.
5) Checkers Rules and History -- Displays a 3-screen overview of Checkers
rules and history. This has been paraphrased from Hoyle.
6) Door Help -- A succinct listing of non-obvious information that should
prove useful to first-time users of the door.
7) Page the Sysop -- The sysop can break into chat mode at any time with
Alt-C...this command allows the caller to request chat mode.
8) Quit to the BBS -- Exit the door and return to the board.
9) Logoff -- Exit completely, dropping carrier.
CARE AND FEEDING OF BCHECKERS
---------------------------
**Warning** While you *can* run the MAINT function with the door online, if
there are many games or players this may cause a timeout of a user's file
access in another task. This won't cause any damage, but it is best to take
down all of your BBS nodes prior to running the MAINT function. The other
functions do not keep the files open as long, and are thus less likely to
cause difficulties -- just make sure you have DOS's SHARE.EXE loaded.
Maintenance
In order to actually delete old games and declare winners in expired games,
the maintenance function should be run daily along with your normal BBS
routine. This is accomplished by using the same command line as for normal
execution of the program, but replacing the path to the drop file with the
string "MAINT". This will go through the game data file and update it as
needed.
I highly recommend that other parameters used during maintenance be kept
the same as you normally use when running the door. If you don't, no real
harm will befall you, but your callers may become upset with you once they
realize that their help files state the game is deleted after 21 days but
the games are actually deleted in 15!
Examples:
BCHECK MAINT
Update the BCHECK.BBS file, using defaults.
BCHECK MAINT 30 XX XX 300 30
Use this to perform maintenance on the games data file, using the
same parameters as used for running the game (from example 2
displayed previously).
Game Deletion
If desired, an individual game may be deleted from the command line. This
enables you to get rid of games from players like "George Washington," or
otherwise deal with twits without adversely affecting the other callers.
For example, call the program as follows to delete game #4:
BCHECK DELETE 4
**Warning** Do NOT omit the game number on the command line, or the
program will delete game number 21 (if it exists). The reasons for this
are not particularly important, but in general I feel that if you are
going to do this kind of thing, you'd better be on your toes anyway. If
the number is higher than the total number of games, or zero or less, a
harmless error message is displayed.
If you wish to delete *all* the games, simply delete the BCHECK.BBS file
at the DOS prompt. The file will be created as needed the next time the
door is used.
I do not plan anything more elaborate than this for sysop intervention,
but will entertain any ideas you may have.
Status Bulletin
BCheckers will generate a game status bulletin when called with the
following syntax:
BCHECK STATUS 0|1
The bulletin is sent to StdOut, and can be redirected to a file for display
on your BBS; or even redirected to the COM port and run as a separate door!
The 0 or 1 indicates whether an ASCII or ANSI bulletin is generated; if
omitted, you will get an ASCII bulletin. This bulletin indicates whose move
it is in any active game, as follows:
BCHECKERS Game Status
Game # 1: Jane Doe needs an opponent...
Game # 2: Ringo Bowman needs an opponent...
Game # 8: John Public to move...
Game # 9: Joe Blow to move...
[etc...]
Press ENTER
Completed games do not appear in the bulletin. Note that the bulletin
actually begins with an ASCII 12 character (clear screen on most systems)
and ends with an ASCII 1 (wait for the ENTER key).
Hall of Fame Bulletin
BCheckers will read the BCHECK.HOF file and generate a hall of fame bulletin
when called with the following syntax:
BCHECK FAME 0|1
Like the game status, the bulletin is sent to StdOut, and the 0 or 1 directs
the program to generate an ASCII or ANSI bulletin. The bulletin gives player
stats as follows:
BCHECKERS HALL of FAME
Player Wins Losses Draws Percent
------ ---- ------ ----- -------
Richard Hangslough 2 0 0 100
Boz Scaggs 11 2 0 84
Jethro Tull 9 2 3 75
Pink Floyd 10 2 8 70
Howard Johnson 4 2 3 61
Bruce Bowman 7 4 3 60
Fleetwood Mac 2 2 3 50
Press ENTER
Up to 18 players will be listed, in order of winning percentage. Draws are
treated as 1/2 game won and 1/2 game lost. The percentage is truncated to
the nearest percent.
REGISTRATION
------------
To Other Shareware Authors:
I will happily exchange registrations to any of my products, if what you
have interests me at all. Netmail me with the specifics if interested.
(Not responsible for lost or misrouted mail!).
The key consists of a small file that resides in the same directory as
your game file (BCHECK.BBS). Ordinarily, I would find this abhorrent --
but I'm just too stupid to figure out a way to patch the executable with
a key entered in a config program (which would also require a config
program!).
Benefits of Registration
------------------------
1) The door will only allow configuration of "days to lose", com port
parameters, and drop file path until you register. You can go ahead and
enter the extra parameters on the command line, but they will be ignored.
Most of the defaults are pretty reasonable, though.
2) You cannot disable paging or set paging hours unless registered.
3) The door will only allow up to 12 concurrent games until you register.
Once registered, up to 200 games may be played.
4) The door will display -= UNREGISTERED =- when returning to the BBS
until you register.
5) You will receive preferential support from the author.
6) You will have peace of mind, knowing that you are supporting shareware.
The key routine could probably be cracked eventually by someone with a hex
editor and a lot of time on their hands. More elaborate protection schemes
than mine have suffered this fate. However, I'm not asking much money for
this -- so save yourself some effort and cough up the cash.
How do you register? Send $10 (US) cash, check or money order, payable to
Bruce Bowman, to the following address:
DIRT CHEAP SOFTWARE
c/o Bruce Bowman
8364 S. State Road 39
Clayton, IN 46118
Allow 2 weeks for personal checks to clear. I'm told it's not a good idea
to send cash via the mail, but I've never had problems with it. If you
decide to do so, and the money gets ripped off, I will feel sorry for you
but I won't waive your registration fee over it.
Accompany this with the form on the following page...or otherwise provide
this information. Registrations without this information WILL be ignored
(I will make a feeble attempt to contact you, and eventually tear up your
check).
It is also a very good idea to send a copy of your BBS drop file with your
registration. Since the door reads data from your drop file to determine
if the key will work, it is very important that both the sysop name and
the BBS name be provided EXACTLY as present in your drop files. If you
cannot guarantee this, you should send me your drop files.
On occasion I have attempted to netmail certain individuals keys, only to
get bad connects -- I simply cannot afford this. If your BBS is only online
during certain hours, let me know. If I get two bad connects trying to
netmail a key, I will give up and put it on hold for you and notify you of
this fact via routed netmail (which itself is not very reliable anymore).
NOTE:
Registered keyholders receive FREE UPGRADES when they become available.
You will have to check in though, since I don't plan to notify everyone of
an upgrade individually.
BCHECKERS REGISTRATION
Version 1.3
IMPORTANT! The BBS name and SYSOP name must match your door IMPORTANT!
IMPORTANT! drop file EXACTLY, or your key won't work. Consider IMPORTANT!
IMPORTANT! sending us a copy of your BBS drop file(s)! IMPORTANT!
*SYSOP NAME: __________________________________________________________
ADDRESS: ______________________________________________________________
_______________________________________________________________________
_______________________________________________________________________
*BBS NAME: ____________________________________________________________
BBS Phone: ____________________________________________________________
BBS Software/Version: _________________________________________________
NETWORK: _______________________________________ (FidoNet, etc, if any)
NETWORK NODE NUMBER: _______ : ________ / ________ (if above completed)
AMOUNT ENCLOSED: ______________________ NOTE: Registration is $10!
HOW DO YOU WANT TO PICK UP THE KEY?
[ ] ... Put on hold for me at 1:231/710 for the Net/Node listed above.
[ ] ... Send via FidoNet crashmail to the node indicated above.
[ ] ... Here's $2.00 Upload it to me as well as the latest version.
Acount Information as Follows:
Account Name: Bruce Bowman
Password: ____________________________________
Miscellaneous Info: ________________________________________
____________________________________________________________
[ ] ... Send on disk to the address above (very slow!) Please add $5 to
cover disk, mailing costs, and my hassle.
Please ship my key and latest copy via [ ] - 5.25" [ ] - 3.5"
[ ] ... YES!! I WANT THE SPECIAL DEAL! Send me latest version of KaBoom!
and its key for only $5 more!!
COMMENTS/SUGGESTIONS/BUGS: ____________________________________________
_______________________________________________________________________
__________________________________________________________________@o.th
TECHNICAL SUPPORT
-----------------
TECHNICAL SUPPORT IS PROVIDED ONLY THROUGH EMAIL OR CALLING MY BBS!
I have had people ask me to call them long-distance on my dime -- I simply
don't make enough money on BCheckers to justify this. There seems to be a
perception amongst the sysop community that door authors are getting rich
selling their doors, but the truth is that most sysops never register their
doors. To provide some perspective, I've spent well over a hundred hours
programming this door, and have yet to make $2/hour on it.
To obtain support, you must call my BBS or send me email. You won't obtain
full access to my BBS on your first call, but you can leave a message to
the sysop at logoff, which I will get. You will then receive a temporary
account until your problem is resolved. You'll have to call the BBS again
to get your reply; or if you're on FidoNet and can wait, I can send you
routed netmail.
The H.O.M.E. BBS
(317) 539-6579 - 28.8 kbps
FIDONET: 1:231/710
DOORNET: 75:7317/71
INTERNET: beb@lilly.com or
Bruce_Bowman@f710.n231.z1.fidonet.org
If you are having problems with your key, you MUST give me a copy of your
door drop files, or I won't be able to help you.
FREQUENT COMMENTS
-----------------
Q: The door can't find the game file, or it can't find my key even though
I've registered. Help!
A: Run the door from the directory containing the game file and the key.
The executable can be anywhere on your path, and the drop file path
is passed on the command line. If your key is named something else, be
sure to rename it to BCHECK.KEY.
The 52-line DOOR.SYS drop file does not contain the system name.
Since the system name is necessary for the key routine to work, you
must create some other drop file. I suggest you use one of the many
drop file converters on the market; DoorMaster is probably the best
program for this purpose. Make sure to configure the converter so it
adds your BBS name to the new drop file. If your BBS software creates
other drop files in addition to DOOR.SYS, try just adding DEL DOOR.SYS
to the batch file before running the door.
If it still does not recognize your key, you either did not provide
the correct BBS and sysop names on your registration form, or your
system is misconfigured so this information is not appearing in your
drop files. Upload a copy of your drop files to the support BBS or via
email to one of the listed addresses.
Q: I know there's a game in there waiting for a new player, but the door
won't let me make a move in that game. It doesn't even show up in the
play list.
A: Use the "join a game" function rather than "make a move."
Q: The screen display gets messed up -- once it prints a move, the screen
jumps up one line and subsequent prints overwrite the board.
A: This happens only on the local screen when the status line is turned
on. The remote screen is not affected.
For local play, turn off the status line with F10 (it defaults to OFF
anyway). I assume any local player already knows his own user stats.
Q: The game prints [2;4m brackets and other junk characters all over.
A: The door requires ANSI graphics capability. Exit the door and rectify
the situation.
Q: The status line function keys don't work right -- they cause the door
to act peculiar and even lock up.
A: Have you defined the offending F-keys to launch a macro? Don't feel bad;
I did this myself with a DV script, and was quite bewildered for awhile!
Q: The file BCHECK.BBS or BCHECK.HOF exists, but I occasionally still get
a message from the door saying "Error opening BCHECK.BBS/BCHECK.HOF!"
A: The door will try 20 times to open the file over a 10-second interval. If
this fails, BCheckers gives up with an error.
You may be running out of file handles. Increase the number of FILES in
your CONFIG.SYS.
It is also possible that one task in a multi-tasking environment opened
the file, and then crashed without closing it. If so, you will probably
have to reboot to clear the error.
This may also rarely happen during intensive disk activity in a multi-
tasking environment (for example, when copying files to/from floppies).
Use a copy utility (like DVCOPY) that will properly release time slices
to your door.
You *do* have DOS's SHARE.EXE loaded, don't you?
Q: The door gives me the error message -- "Timeout on BCHECK.BBS read
operation." What does THAT mean?
A: As before, a task has grabbed exclusive access to the file and never
closed it (or at least didn't do so within 10 seconds). The remedy is
pretty much the same; although if you were running the MAINT procedure
during the error, the door will probably work now without rebooting.
Q: BCheckers made me move somewhere I didn't want to move!
A: The door enforces Hoyle's rules, and will not allow a caller to deviate
from them. Since many of your callers will not be familiar with these
rules, the key points are presented in the door help screens.
PRODUCT HISTORY
---------------
1/81 Wrote my first Checkers game, in BASIC (of all things). Artificial
intelligence -- play against the game. SLOW....
3/94 Decided to write BCheckers, as an exercise in teaching myself C.
Found out I could port almost *none* of my original BASIC code.
4/94 First beta release of BCheckers (version 0.90ß). Bug-laden.
6/94 Released version 1.0 (finally!). Fixed bug where the game always
played in registered mode (boy, you guys would've loved that)!
Apparently, fixing a drop file bug introduced another one. I
believe I have it now...
6/94 Released version 1.0a. Version 1.0 was never really hatched, but
a few people did file request it. While it's highly unlikely you
will experience problems running 1.0, 1.0a does include more
testing for file access conflicts in multi-node systems (and
helpful error messages). Other minor cosmetic improvements (like
stating that you are indeed being logged off when requested).
7/94 Released version 1.1 -- some minor bug fixes, as follows:
1) If more than 19 games, the <more> prompt is no longer displayed
on the same line as the 19th game.
2) The "taken pieces" display would sometimes overwrite part of the
"Checkers" logo if a player had crowned more pieces than his
opponent had captured (a *very* rare circumstance). Fixed.
3) The game wouldn't recognize an upper case "Y" to verify a game
forfeit (it would stubbornly wait for a lower case "y"). Fixed.
4) The color intensity on the remote screen would sometimes not be
set properly. Fixed.
New stuff:
1) Added the game-draw function. I have visions of many people out
there playing version 1.0 with 1 king vs. 1 king, and no way to
bring the game to a satisfactory conclusion! Shame on me...
2) Added the ability to set sysop paging hours.
3) Added support for leaving a note to your opponent.
4) Added the game status bulletin generator.
5) Added the hall of fame bulletin generator.
6) Added support for the RA 2.00 EXITINFO.BBS drop file format.
7) Logoff key is now "!". It was too easy to accidentally hit "9"
rather than "8", and end up disconnecting rather than returning
to the BBS.
7/94 Released version 1.1a. Found a minor bug in the Hall of Fame
bulletin and squashed it.
8/94 Released version 1.2. Added a carriage return to the bulletin code
in case the caller does not have screen clearing turned on. Changed
all "Press any key" prompts to "Press ENTER." This allows the user
to still take advantage of type-ahead, while fixing a problem with
some modems sending a ^Q character when using XON/XOFF handshaking.
Speeded up both the main menu and the board drawing routines. Board
display now shows the player's names on both sides of the board.
Some drop file converters pad the BBS name or sysop name with extra
spaces, which caused difficulties in key recognition. BCheckers now
strips these spaces prior to applying the key recognition routine.
Made some minor changes in check for move legality in anticipation
of a "play again the computer" mode for version 2.0.
8/94 I hate bug-fix releases! Version 1.2a was necessary to fix a bug
that kept the bulletin generators from working. Also added code to
flush the keyboard buffer just before exiting.
3/95 BCheckers 1.3 parses multiple drop files more effectively. This
should solve some rare/intermittent problems with key recognition.
The QuickBBS format of EXITINFO.BBS file is now handled properly.
This should fix the "time left" problem on returning to QuickBBS.
Previous versions of BCheckers required XON/XOFF handshaking if a
FOSSIL was not available. Hardware handshaking is now supported.
Non-standard IRQs and base addresses are now supported if not using
a FOSSIL.
Cleaned up the Hall of Fame code so that players with a 1-0 record
aren't listed above those with a 10-0 record just because both are
100%.
The "maxtime" parameter works now (when registered).
FUTURE OF BCHECKERS
-------------------
Ultimately, we may add internode or inter-BBS play. I've also had a request
for a "play against the computer" mode, which I plan to implement in version
2.0. Register now while the program is still cheap!
I would welcome other ideas on how BCheckers can be improved.